package io.xccit.race.domain;

import io.xccit.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 竞赛申诉管理对象 race_competition_appeal
 * 
 * @author ywx
 * @date 2025-10-13
 */
public class RaceCompetitionAppeal extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 申诉ID */
    private Long id;
    
    /** 竞赛ID */
    private Long competitionId;
    
    /** 报名记录ID */
    private Long signupId;
    
    /** 申诉标题（1-30字） */
    private String appealTitle;
    
    /** 申诉理由（最多500字） */
    private String appealReason;
    
    /** 联系电话 */
    private String contactPhone;
    
    /** 联系邮箱 */
    private String contactEmail;
    
    /** 审核状态（0待审核，1已通过，2已拒绝） */
    private Integer auditStatus;
    
    /** 审核建议 */
    private String auditSuggestion;
    
    /** 审核员ID */
    private Long auditorId;
    
    /** 审核员姓名 */
    private String auditorName;
    
    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date auditTime;
    
    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;
    
    /** 竞赛名称（关联查询） */
    private String competitionName;
    
    /** 参赛者姓名（关联查询） */
    private String participantName;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setCompetitionId(Long competitionId) {
        this.competitionId = competitionId;
    }

    public Long getCompetitionId() {
        return competitionId;
    }

    public void setSignupId(Long signupId) {
        this.signupId = signupId;
    }

    public Long getSignupId() {
        return signupId;
    }

    public void setAppealTitle(String appealTitle) {
        this.appealTitle = appealTitle;
    }

    public String getAppealTitle() {
        return appealTitle;
    }

    public void setAppealReason(String appealReason) {
        this.appealReason = appealReason;
    }

    public String getAppealReason() {
        return appealReason;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactEmail(String contactEmail) {
        this.contactEmail = contactEmail;
    }

    public String getContactEmail() {
        return contactEmail;
    }

    public void setAuditStatus(Integer auditStatus) {
        this.auditStatus = auditStatus;
    }

    public Integer getAuditStatus() {
        return auditStatus;
    }

    public void setAuditSuggestion(String auditSuggestion) {
        this.auditSuggestion = auditSuggestion;
    }

    public String getAuditSuggestion() {
        return auditSuggestion;
    }

    public void setAuditorId(Long auditorId) {
        this.auditorId = auditorId;
    }

    public Long getAuditorId() {
        return auditorId;
    }

    public void setAuditorName(String auditorName) {
        this.auditorName = auditorName;
    }

    public String getAuditorName() {
        return auditorName;
    }

    public void setAuditTime(java.util.Date auditTime) {
        this.auditTime = auditTime;
    }

    public java.util.Date getAuditTime() {
        return auditTime;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setCompetitionName(String competitionName) {
        this.competitionName = competitionName;
    }

    public String getCompetitionName() {
        return competitionName;
    }

    public void setParticipantName(String participantName) {
        this.participantName = participantName;
    }

    public String getParticipantName() {
        return participantName;
    }

    @Override
    public String toString() {
        return "RaceCompetitionAppeal{" +
                "id=" + id +
                ", competitionId=" + competitionId +
                ", signupId=" + signupId +
                ", appealTitle='" + appealTitle + '\'' +
                ", appealReason='" + appealReason + '\'' +
                ", contactPhone='" + contactPhone + '\'' +
                ", contactEmail='" + contactEmail + '\'' +
                ", auditStatus=" + auditStatus +
                ", auditSuggestion='" + auditSuggestion + '\'' +
                ", auditorId=" + auditorId +
                ", auditorName='" + auditorName + '\'' +
                ", auditTime=" + auditTime +
                ", delFlag='" + delFlag + '\'' +
                ", competitionName='" + competitionName + '\'' +
                ", participantName='" + participantName + '\'' +
                '}';
    }
}
